#leetcode题目48：旋转图像
#难度：中等
#时间复杂度：O(n^2)
#空间复杂度：O(1)
#方法：矩阵



#注意点：原地旋转，就是不使用额外的空间

class Solution:
    def rotateMatrix(self, matrix):
        #注意这个题目下矩阵都是方阵
        n = len(matrix)

        for i in range(n // 2):
            for j in range((n + 1) // 2):
                tmp = matrix[i][j]
                matrix[i][j] = matrix[n - j - 1][i]
                matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]
                matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1]
                matrix[j][n - i - 1] = tmp


matrix=[[1,2,3],[4,5,6],[7,8,9]]
#预期输出：[[7,4,1],[8,5,2],[9,6,3]]
solution = Solution()
solution.rotateMatrix(matrix)
print(matrix)


matrix=[[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
#预期输出：[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
solution = Solution()
solution.rotateMatrix(matrix)
print(matrix)


